/*
 * Copyright (c) 2018-2999 北京小象智慧信息科技有限公司 All rights reserved.
 *
 * https://www.xiaoxiangai.com/
 *
 * 未经允许，不可做商业用途！
 *
 * 版权所有，侵权必究！
 */

package com.yami.shop.sys.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yami.shop.sys.dto.UserAndShopDto;
import com.yami.shop.sys.model.SysUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 系统用户
 */
public interface SysUserMapper extends BaseMapper<SysUser> {

	/**
	 * 查询用户的所有权限
	 * @param userId  用户ID
	 */
	List<String> queryAllPerms(Long userId);

	/**
	 * 根据用户id 批量删除用户
	 * @param userIds
	 */
	void deleteBatch(@Param("userIds") Long[] userIds);

	/**
	 * 根据用户名获取管理员用户
	 * @param username
	 * @return
	 */
	SysUser selectByUsername(String username);

	/**
	 * 根据电话号码获取管理员用户
	 * @param mobile
	 * @return
	 */
	List<SysUser> selectByMobile(String mobile);

	/**
	 * 根据用户名获取管理员用户
	 * @param username
	 * @return
	 */
	List<SysUser> checkUserByUserName(String username);

    /**
     * 根据userId获取管理员信息
     * @param userId
     * @return
     */
	SysUser selectByUserId(Long userId);

	/**
	 * 根据userId获取管理员信息（包含店铺营业时间）
	 * @param userId
	 * @return
	 */
	UserAndShopDto getSysUserByUserId(Long userId);

	/**
	 * 查询数据库中最大的shopId
	 */
	Integer selectMaxShopId();

	/**
	 * 根据shopId 查询UserId
	 */
	SysUser getSysUserId(Long shopId);

	/**
	 * 根据mobile 修改密码
	 */
	void updatePasswordByPhone(@Param("username") String username,@Param("mobile") String mobile,@Param("newPassword") String newPassword);

	/**
	 * 获取sysUser
	 */
	SysUser getSysUser(Long shopId);
}
